<?php
/**
 * Created by PhpStorm.
 * User: fanzhaogui
 * Date: 2021/6/22
 * Time: 17:45
 */



/**
 * PHP 非递归实现查询该目录下所有文件
 * @param $dir 路径
 * @return array
 */
function scanfiles($dir)
{

    if(!is_dir($dir)) {
        return array();
    }

    $dir = rtrim( str_replace('\\', '/', $dir), '/') . '/';

    // 栈， 默认值为传入的目录
    $dirs = array($dir);
    $rt = array();

    do {
        // 弹栈
        $dir = array_pop($dirs);

        $tmp = scandir($dir);

        foreach ($tmp as $f) {
            if($f == '.' || $f == '..') {
                continue;
            }

            $path = $dir.$f;

            if(is_dir($path)) {
                // 如果是目录，则 进栈
                array_push($dirs, $path .'/');
            } else if (is_file($path)) {
                $rt[] = $path;
            }

        }
    } while ($dirs); // 直到栈中没有目录

    return $rt;
}

// 使用范例： code_test/image/index.php:47




